Three-dimensional graphical interfaces display information within a three-dimensional graphical (or virtual) environment to allow viewing of and navigation through information in an intuitive and immersive manner. Since people are physically accustomed to navigating through and viewing objects in a real three-dimensional world, a three-dimensional graphical environment becomes an intuitive, immersive, and natural environment to the user. Often, the information that is represented by the three-dimensional interface is a large database of data objects. The interface displays the data objects as representative images within the three-dimensional graphical environment and then provides the user the ability to navigate within the virtual environment to view the representative images and interact with the corresponding data objects. In order to create a three-dimensional graphical environment, it is typical to divide or partition the environment into a plurality of three-dimensional areas (e.g. rooms) having a plurality of image objects distributed on the boundaries of each area that has the effect of logically dividing and displaying the objects within the environment. Essentially, partitioning the environment and distributing image objects within the partitioned environment facilitates navigation through the environment (where an “image object” can be generally defined as any visual representation of the data object displayed within the graphical environment including, but not limited to, images, video, three dimensional images, and audio clips).
In known user interfaces, representative images can be selected and interacted with within each three-dimensional partitioned area by lining up the point of sight of the user's viewing perspective with an image object of interest on a partition within the environment and then selection and/or activation can be initiated by the user with an input device such as a keyboard, mouse, or joystick.
According to one known method, in order to identify the image object that the user's line of sight is directed towards, all objects having coordinates along the line of sight in the environment coordinate system are determined and these image objects are then searched to identify the image object having coordinates that are closest to the user position coordinates. In a database having many data objects, this search technique can be very time consuming. In order for a three-dimensional graphical environment to be effective and engaging to the user, the user interface needs to be sufficiently responsive to allow real-time user interaction with the environment. Time consuming object selection operations minimize the environment's ability to provide sufficient real-time responsiveness to the user.
In an alternative known technique for identifying image objects, when the line of sight of the user lines up with a displayed image object in the graphical environment, a set of color patches is yielded. These patches are then compared with an updated list of previously rendered three-dimensional shapes, and the image object corresponding to the matching shape is selected. This type of approach requires a significant amount of memory storage area to store and maintain the shape list. In addition, the searching algorithm processing time increases with the number of objects in the scene thereby reducing the interface's real-time responsiveness.
What is needed is a simple and fast technique of identifying a selected image object in a three-dimensional graphical environment, thereby facilitating an effective and engaging real-time user interface for the three-dimensional graphical environment.